update api box_info

Brightcells 8 years ago
parent
commit
b7d9a25480
6 changed files with 91 additions and 44 deletions
  1. 1 0
      .gitignore
  2. 6 44
      main.py
  3. 0 0
      utils/__init__.py
  4. 35 0
      utils/boxinfo.py
  5. 25 0
      utils/logit.py
  6. 24 0
      utils/sqlite.py

+ 1 - 0
.gitignore

@@ -1,3 +1,4 @@
1
+*.py[cod]
1 2
 .idea/
2 3
 .DS_Store
3 4
 minipai2.db

+ 6 - 44
main.py

@@ -7,14 +7,17 @@ import re
7 7
 import sqlite3
8 8
 import stat
9 9
 import time
10
-from functools import wraps
11 10
 
12 11
 from tornado.httpserver import HTTPServer
13 12
 from tornado.ioloop import IOLoop
14
-from tornado.log import app_log as logger
15 13
 from tornado.options import define, options
16 14
 from tornado.web import Application, RequestHandler, StaticFileHandler
17 15
 
16
+from utils.boxinfo import get_box_status
17
+from utils.logit import log_request_arguments, logit
18
+from utils.sqlite import (CREATE_INDEX1, CREATE_INDEX2, CREATE_TABLE_STMT, DELETE_RECORD_STMT, INSERT_RECORD_STMT,
19
+                          SELECT_MAX_PHOTO_ID_STMT, SELECT_ORIGIN_PATH_STMT)
20
+
18 21
 
19 22
 define('host', default='127.0.0.1', help='run on the given host', type=str)
20 23
 define('port', default=8001, help='run on the given port', type=int)
@@ -23,29 +26,6 @@ options.parse_command_line()
23 26
 
24 27
 ROOT_PATH = '/home/work/minipai2'
25 28
 
26
-# Create Table SQL
27
-CREATE_TABLE_STMT = """
28
-    CREATE TABLE IF NOT EXISTS photoinfo (
29
-    id integer primary key,
30
-    lensman varchar(20),
31
-    session varchar(20),
32
-    photo_id varchar(13),
33
-    photo_name varchar(255),
34
-    thumb_path varchar(255),
35
-    origin_path varchar(255)
36
-);"""
37
-# Create Index SQL
38
-CREATE_INDEX1 = 'CREATE INDEX IF NOT EXISTS idx_lensman ON photoinfo (lensman);'
39
-CREATE_INDEX2 = 'CREATE INDEX IF NOT EXISTS idx_session ON photoinfo (session);'
40
-# Insert Record SQL
41
-INSERT_RECORD_STMT = 'INSERT INTO photoinfo VALUES (NULL, ?, ?, ?, ?, ?, ?);'
42
-# Delete Record SQL
43
-DELETE_RECORD_STMT = 'DELETE FROM photoinfo WHERE lensman = ? and session = ? and name = ?;'
44
-# Query Max(photo_id) SQL
45
-SELECT_MAX_PHOTO_ID_STMT = 'SELECT MAX(photo_id) FROM photoinfo WHERE lensman = ? and session = ?;'
46
-# Query Origin Path SQL
47
-SELECT_ORIGIN_PATH_STMT = 'SELECT origin_path FROM photoinfo WHERE lensman = ? and photo_id = ?;'
48
-
49 29
 
50 30
 conn = sqlite3.connect('minipai2.db')
51 31
 cur = conn.cursor()
@@ -58,21 +38,6 @@ cur.execute(CREATE_INDEX2)
58 38
 conn.commit()
59 39
 
60 40
 
61
-# Logging Some Vars
62
-def logit(self, content, key='content'):
63
-    uri = self.request.uri if hasattr(self, 'request') else self
64
-    logger.info('uri=%s&%s=%s', uri, key, content)
65
-
66
-
67
-# Logging Request Arguments
68
-def log_request_arguments(func):
69
-    @wraps(func)
70
-    def returned_wrapper(self, *args, **kwargs):
71
-        logit(self, self.request.arguments, key='arguments')
72
-        return func(self, *args, **kwargs)
73
-    return returned_wrapper
74
-
75
-
76 41
 # FILE OPERATE
77 42
 def silent_makdirs(path):
78 43
     try:
@@ -315,10 +280,7 @@ class BoxInfoHandler(RequestHandler):
315 280
             'status': 200,
316 281
             'data': {
317 282
                 'no.': 'paiai000001',
318
-                'status': {
319
-                    'code': '200',
320
-                    'msg': u'正常',
321
-                }
283
+                'status': get_box_status(),
322 284
             }
323 285
         })
324 286
 

+ 0 - 0
utils/__init__.py


+ 35 - 0
utils/boxinfo.py

@@ -0,0 +1,35 @@
1
+# -*- coding: utf-8 -*-
2
+
3
+
4
+STATUS_CODE_MSG = {
5
+    '101': u'相机连接异常或者没有接入相机',
6
+    '201': u'目录监控初始化异常',
7
+    '202': u'目录监控失败',
8
+    '203': u'目录监控失败',
9
+}
10
+
11
+
12
+DETECT_LOGS = (
13
+    # ('LOG FILE PATH', 'VALID STATUS CODE')
14
+    ('/tmp/getpic.log', '100'),
15
+    ('/tmp/main.log', '200')
16
+)
17
+
18
+
19
+def get_box_status():
20
+    for path, valid_code in DETECT_LOGS:
21
+        try:
22
+            with open(path, 'r') as f:
23
+                code = f.read().strip()
24
+                if code != valid_code:
25
+                    return {
26
+                        'code': code,
27
+                        'msg': STATUS_CODE_MSG.get(code, u''),
28
+                    }
29
+        except IOError:
30
+            # LOG FILE NOT EXIST
31
+            pass
32
+    return {
33
+        'code': '200',
34
+        'msg': u'正常',
35
+    }

+ 25 - 0
utils/logit.py

@@ -0,0 +1,25 @@
1
+# -*- coding: utf-8 -*-
2
+
3
+from functools import wraps
4
+
5
+from tornado.log import app_log as logger
6
+
7
+
8
+DEBUG = False
9
+
10
+
11
+# Logging Some Vars
12
+def logit(self, content, key='content'):
13
+    if not DEBUG:
14
+        return
15
+    uri = self.request.uri if hasattr(self, 'request') else self
16
+    logger.info('uri=%s&%s=%s', uri, key, content)
17
+
18
+
19
+# Logging Request Arguments
20
+def log_request_arguments(func):
21
+    @wraps(func)
22
+    def wrapper(self, *args, **kwargs):
23
+        logit(self, self.request.arguments, key='arguments')
24
+        return func(self, *args, **kwargs)
25
+    return wrapper

+ 24 - 0
utils/sqlite.py

@@ -0,0 +1,24 @@
1
+# -*- coding: utf-8 -*-
2
+
3
+# Create Table SQL
4
+CREATE_TABLE_STMT = """
5
+    CREATE TABLE IF NOT EXISTS photoinfo (
6
+    id integer primary key,
7
+    lensman varchar(20),
8
+    session varchar(20),
9
+    photo_id varchar(13),
10
+    photo_name varchar(255),
11
+    thumb_path varchar(255),
12
+    origin_path varchar(255)
13
+);"""
14
+# Create Index SQL
15
+CREATE_INDEX1 = 'CREATE INDEX IF NOT EXISTS idx_lensman ON photoinfo (lensman);'
16
+CREATE_INDEX2 = 'CREATE INDEX IF NOT EXISTS idx_session ON photoinfo (session);'
17
+# Insert Record SQL
18
+INSERT_RECORD_STMT = 'INSERT INTO photoinfo VALUES (NULL, ?, ?, ?, ?, ?, ?);'
19
+# Delete Record SQL
20
+DELETE_RECORD_STMT = 'DELETE FROM photoinfo WHERE lensman = ? and session = ? and name = ?;'
21
+# Query Max(photo_id) SQL
22
+SELECT_MAX_PHOTO_ID_STMT = 'SELECT MAX(photo_id) FROM photoinfo WHERE lensman = ? and session = ?;'
23
+# Query Origin Path SQL
24
+SELECT_ORIGIN_PATH_STMT = 'SELECT origin_path FROM photoinfo WHERE lensman = ? and photo_id = ?;'